package prestar.dominio.entidades;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class Cliente extends Persona 
{
    
    private List<Financiamiento> prestamos = new ArrayList<Financiamiento>();

    public Cliente() {
    }

    public Cliente(String nombre, String apellido, String cedula, String direccion) 
    {
        super(nombre, apellido, cedula, direccion);
    }
    
    public Cliente(int codigo, String nombre, String apellido, String cedula, String direccion) 
    {
        super(codigo, nombre, apellido, cedula, direccion);
    }

    public List<Financiamiento> getprestamos() {
        return prestamos;
    }

    public void setprestamos(List<Financiamiento> prestamos) {
        this.prestamos = prestamos;
    }
    
    public String[][] getDeudaAsArray() {
        List<Cuota> deuda = new ArrayList<Cuota>();
        for (Financiamiento f : this.prestamos)
            deuda.addAll(f.getCuotas());
        String[][] arrayDeuda = new String[deuda.size()][];
        for (Cuota c : deuda){
            c.getBalance();
            arrayDeuda[deuda.indexOf(c)] = new String[]{String.valueOf(c.getCodigo()), 
                util.Fechas.stringValue(c.getFecha()), String.valueOf(c.getInteres()), String.valueOf(c.getMonto()),
                String.valueOf(c.getMora()), String.valueOf(c.getInteres() + c.getMonto()), String.valueOf(c.getFinanciamiento().getCodigo())};
        }
        return arrayDeuda;
    }
    public String[][] getDeudaAsArray(Date fecha) {
        List<Cuota> deuda = new ArrayList<Cuota>();
        List<Cuota> result = new ArrayList<Cuota>();
        
        for (Financiamiento f : this.prestamos)
            deuda.addAll(f.getCuotas());
        
        for (Cuota c : deuda)
            if (c.getFecha().before(fecha))
                result.add(c);
        
        String[][] arrayDeuda = new String[result.size()][];
        
        for (Cuota c : result){
            arrayDeuda[result.indexOf(c)] = new String[]{String.valueOf(c.getCodigo()), 
                util.Fechas.stringValue(c.getFecha()), String.valueOf(c.getInteres()), String.valueOf(c.getMonto()),
                String.valueOf(c.getMora()), String.valueOf(c.getInteres() + c.getMonto()), String.valueOf(c.getFinanciamiento().getCodigo())};
        }
        return arrayDeuda;
    }
}
